//获取接口数据
import {reqGetDetailList,reqAddOrUpdateShopCart} from "@/api"
//封装游客身份模块uuid--->生成一个随机的字符串（不能在变了）
import { getUUID } from "../utils/uuid_token";

//准备actions 用于响应组件中的动作
const actions={
    //获取产品信息dactions
   async getDetailList({commit},skuId){
        let result = await reqGetDetailList(skuId)
        if(result.code==200){
            commit('GETDETAILLIST',result.data)
        }
    },
    //将产品添加到购物车中
   async reqAddOrUpdateShopCart({commit},{skuId,skuNum}){
       let result= await reqAddOrUpdateShopCart(skuId,skuNum);
       //服务器没有返回多余的数据所以咱们不用在往下写三连环了
       if(result.code==200){
            return 'ok';
       }else{
           return Promise.reject(new Error('失败'))
       }
    },
}
//准备mutations 用于操作数据（state）
const mutations={
    GETDETAILLIST(state,detailList){
        state.detailList=detailList
    },
}
//准备state 用于存储数据
const state={
    detailList:{},
    //游客临时身份
    uuid_token:getUUID()
}
//准备getters 用于将state中的数据进行加工
//可以把我们将来在组件当中需要用的数据简化一下【将来组件获取数据就简单了】
const getters={
    //路径导航简化的数据
    categoryView(state){
        return state.detailList.categoryView ||{}
    },
    //简化产品信息的数据
    skuInfo(state){
        return state.detailList.skuInfo ||{}
    },
    //简化产品售卖属性的简化
    spuSaleAttrList(state){
        return state.detailList.spuSaleAttrList ||[]
    }
}

export default{
    actions,
    mutations,
    state,
    getters
}